package ProyectoX.Source.Movimientos;

import java.awt.Point;

import ProyectoX.Source.Naves.NaveEnemiga;

/**
 * Hilo Que realiza los movimientos de las naves NaveDeBatalla
 * @author Guido
 *
 */
public class MovimientosNaveBatalla extends Movimientos {
	
	public MovimientosNaveBatalla(int fac){
		factor = fac;
	}
	
	public void preparar() {
		this.nave.setLocation(factor, 0-this.nave.getHeight());
	}

	public void jugar() {
		this.start();
	}
	
	public void run() {
		dormir(3000);
		Point pos = this.nave.getLocation();
		
		while( pos.y < 0 ) { //Aparecer en pantalla
			dormir(100);
			pos = sur(nave,pos,8);
		}
		
		while (!nave.estaMuerto()) { 
			
			while( pos.x > 0 && (!nave.estaMuerto()) ) { //Moverse todo a la izquierda
					dormir(100);
					juego.graficaDisparoEnemigo(nave);
					pos = oeste(nave,pos,5);
					verSiPego();
					verSiChoco();
			}
			while( pos.y < 4*nave.getHeight() && (!nave.estaMuerto()) ) { //Bajar en diagonal derecha
				dormir(85);
				juego.graficaDisparoEnemigo(nave);
				pos = sudEste(nave,pos,7,8);
				verSiPego();
				verSiChoco();
			}
			while( pos.y > 0 && (!nave.estaMuerto()) ) { //Subir
				dormir(85);
				juego.graficaDisparoEnemigo(nave);
				pos = norte(nave,pos,7);
				verSiPego();
				verSiChoco();
			}
			while( pos.y < 4*nave.getHeight() && (!nave.estaMuerto()) ) { //Bajar en diagonal izquierda
				dormir(85);
				juego.graficaDisparoEnemigo(nave);
				pos = sudOeste(nave,pos,7,8);
				verSiPego();
				verSiChoco();
			}
			while( pos.y > 0 && (!nave.estaMuerto()) ) { //Subir
				dormir(85);
				juego.graficaDisparoEnemigo(nave);
				pos = norte(nave,pos,7);
				verSiPego();
				verSiChoco();
			}
		
		}
		juego.sacarNave((NaveEnemiga)nave);
		juego.repaint();
	}

}
